﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GestorDeFlotasDesktop.Chofer_Auto
{
    public partial class buscadorAutos : Form
    {
        public capaDatos.SQLSyntaxisGeneration buscadorACD = new capaDatos.SQLSyntaxisGeneration();
        DataTable buscadorautos,marcas,modeloReloj;
        public buscadorAutos()
        {
            InitializeComponent();
            cargarMarcas();
            cargarModelosReloj();
            idAuto =0;
            patenteAuto = "";
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void buscadorAutos_Load(object sender, EventArgs e)
        {
            comboBox1.Text = "";
            comboBox2.Text = "";
        }

        private void buscadorAutos_FormClosing(object sender, FormClosingEventArgs e)
        {
            

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cargarMarcas() {
            string query = "select nombreMarca from PELUSA.marcaAuto";

            marcas = buscadorACD.executeQuery(query);
            comboBox1.MaximumSize = GetPreferredSize(new Size(274, marcas.Rows.Count));
            comboBox1.DataSource = marcas;
            comboBox1.DisplayMember = marcas.Columns[0].ColumnName;
            comboBox1.Text = "";

        }
        private void cargarModelosReloj() {

            
            modeloReloj = buscadorACD.executeQuery("select modelodescripcion,idmodelo from PELUSA.modeloreloj");
            comboBox2.MaximumSize = GetPreferredSize(new Size(274, modeloReloj.Rows.Count));
            comboBox2.DataSource = modeloReloj;
            comboBox2.DisplayMember = modeloReloj.Columns[0].ColumnName;
            comboBox2.Text = "";
        
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            rodado.Text = "";
            modelo.Text = "";
            licencia.Text = "";
            comboBox1.Text = "";
            comboBox2.Text = "";
            patente.Text = "";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string query = "select distinct idTaxi 'id Taxi',m.nombreMarca 'Marca',a.modeloDescripcion 'Modelo',patenteTaxi 'Patente',";
            query += "licenciaTaxi 'Licencia',rodadoTaxi 'Rodado',mr.modeloDescripcion 'Modelo Reloj',r.idReloj 'Id Reloj',activoTaxi 'Activo-Habilitado' from pelusa.taxis, pelusa.modeloAuto a, pelusa.marcaAuto m, pelusa.modeloReloj mr,pelusa.reloj r";
            query += " where m.idMarca=marcaTaxi and a.idModelo=modeloTaxi and mr.idModelo= r.modeloReloj and r.idReloj=relojTaxi ";
            if (patente.Text != "" || licencia.Text != "" || modelo.Text != "" || comboBox1.Text != "" || comboBox2.Text != "")
            {
                
                if (patente.Text != "")
                {
                    query += " and patenteTaxi like '%" + patente.Text + "%'";
                    if (licencia.Text != "")
                    {
                        query += " and licenciaTaxi like '%" + licencia.Text + "%'";


                    }
                    if (modelo.Text != "")
                    {
                        query += " and modeloTaxi= a.idmodelo and a.modeloDescripcion like '%" + modelo.Text + "%'";

                    }
                    if (comboBox1.Text != "")
                    {
                        query += " and marcaTaxi=m.idMarca and m.nombreMarca like '%" + comboBox1.Text + "%'";

                    }
                    if (comboBox2.Text != "")
                    {
                        query += " and mr.idModelo=" + modeloReloj.Rows[comboBox2.SelectedIndex].ItemArray[1];

                    }

                }
                else if (licencia.Text != "")
                    {
                        query += " and licenciaTaxi like '%" + licencia.Text + "%'";


                    
                    if (modelo.Text != "")
                    {
                        query += " and modeloTaxi= a.idmodelo and a.modeloDescripcion like '%" + modelo.Text + "%'";

                    }
                    if (comboBox1.Text != "")
                    {
                        query += " and marcaTaxi=m.idMarca and m.nombreMarca like '%" + comboBox1.Text + "%'";

                    }
                    if (comboBox2.Text != "")
                    {
                        query += " and mr.idModelo=" + modeloReloj.Rows[comboBox2.SelectedIndex].ItemArray[1];

                    }
                }
                else if (modelo.Text != "")
                    {
                        query += " and modeloTaxi= a.idmodelo and modeloDescripcion like '%" + modelo.Text + "%'";

                    
                    if (comboBox1.Text != "")
                    {
                        query += " and marcaTaxi=m.idMarca and m.nombreMarca like '%" + comboBox1.Text + "%'";

                    }
                    if (comboBox2.Text != "")
                    {
                        query += " and mr.idModelo=" + modeloReloj.Rows[comboBox2.SelectedIndex].ItemArray[1];

                    }

                }
                else if (comboBox1.Text != "")
                    {
                        query += " and marcaTaxi=m.idMarca and m.nombreMarca like '%" + comboBox1.Text + "%'";

                    
                    if (comboBox2.Text != "")
                    {
                        query += " and mr.idModelo=" + modeloReloj.Rows[comboBox2.SelectedIndex].ItemArray[1];

                    }
                }
                else
                {

                    query += " and mr.idModelo=" + modeloReloj.Rows[comboBox2.SelectedIndex].ItemArray[1];

                }


            }
            
            buscadorautos = buscadorACD.executeQuery(query);
            this.dataGridView1.DataSource = buscadorautos;
        }


        private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (buscadorautos.Rows.Count > e.RowIndex && e.RowIndex >= 0)
            {
                idAuto = Convert.ToInt32(buscadorautos.Rows[e.RowIndex].ItemArray[0]);
                patenteAuto = Convert.ToString(buscadorautos.Rows[e.RowIndex].ItemArray[3]);
                this.Close();
            }
        }
    }
}
